home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
pluginy Firefox
/
56804
/
56804.xpi
/
chrome
/
content
/
gprAlg.js
< prev
next >
Wrap
Text File
|
2010-01-31
|
7KB
|
250 lines
if(!com) var com={};
if(!com.seostatus) com.seostatus={};
com.seostatus.gprAlg = function(){
var pub = {};
/************************************************************\
*
\************************************************************/
pub.hexdec = function(str)
{
return parseInt(str,16);
}
/************************************************************\
*
\************************************************************/
pub.zeroFill = function(a,b)
{
var z = pub.hexdec(80000000);
if (z & a)
{
a = a>>1;
a &= ~z;
a |= 0x40000000;
a = a>>(b-1);
}
else
{
a = a >> b;
}
return (a);
}
/************************************************************\
*
\************************************************************/
pub.mix = function(a,b,c)
{
a -= b; a -= c; a ^= (pub.zeroFill(c,13));
b -= c; b -= a; b ^= (a<<8);
c -= a; c -= b; c ^= (pub.zeroFill(b,13));
a -= b; a -= c; a ^= (pub.zeroFill(c,12));
b -= c; b -= a; b ^= (a<<16);
c -= a; c -= b; c ^= (pub.zeroFill(b,5));
a -= b; a -= c; a ^= (pub.zeroFill(c,3));
b -= c; b -= a; b ^= (a<<10);
c -= a; c -= b; c ^= (pub.zeroFill(b,15));
var ret = new Array((a),(b),(c));
return ret;
}
/************************************************************\
*
\************************************************************/
pub.GoogleCH = function(url,length)
{
var init = 0xE6359A60;
if (arguments.length == 1)
length = url.length;
var a = 0x9E3779B9;
var b = 0x9E3779B9;
var c = 0xE6359A60;
var k = 0;
var len = length;
var mixo = new Array();
while(len >= 12)
{
a += (url[k+0] +(url[k+1]<<8) +(url[k+2]<<16) +(url[k+3]<<24));
b += (url[k+4] +(url[k+5]<<8) +(url[k+6]<<16) +(url[k+7]<<24));
c += (url[k+8] +(url[k+9]<<8) +(url[k+10]<<16)+(url[k+11]<<24));
mixo = pub.mix(a,b,c);
a = mixo[0]; b = mixo[1]; c = mixo[2];
k += 12;
len -= 12;
}
c += length;
switch(len)
{
case 11:
c += url[k+10]<<24;
case 10:
c+=url[k+9]<<16;
case 9 :
c+=url[k+8]<<8;
case 8 :
b+=(url[k+7]<<24);
case 7 :
b+=(url[k+6]<<16);
case 6 :
b+=(url[k+5]<<8);
case 5 :
b+=(url[k+4]);
case 4 :
a+=(url[k+3]<<24);
case 3 :
a+=(url[k+2]<<16);
case 2 :
a+=(url[k+1]<<8);
case 1 :
a+=(url[k+0]);
}
mixo = pub.mix(a,b,c);
if (mixo[2] < 0)
return (0x100000000 + mixo[2]);
else
return mixo[2];
}
/************************************************************\
*
\************************************************************/
pub.strord = function(string)
{
var result = new Array();
for(i=0;i<string.length;i++)
{
result[i] = string[i].charCodeAt(0);
}
return result;
}
/************************************************************\
*
\************************************************************/
pub.c32to8bit = function(arr32)
{
var arr8 = new Array();
for(i=0;i<arr32.length;i++)
{
for (bitOrder=i*4;bitOrder<=i*4+3;bitOrder++)
{
arr8[bitOrder]=arr32[i]&255;
arr32[i]=pub.zeroFill(arr32[i], 8);
}
}
return arr8;
}
/************************************************************\
*
\************************************************************/
pub.myfmod = function(x,y)
{
var i = Math.floor(x/y);
return (x - i*y);
}
/************************************************************\
*
\************************************************************/
pub.GoogleNewCh = function(ch)
{
ch = (((ch/7) << 2) | ((pub.myfmod(ch,13))&7));
prbuf = new Array();
prbuf[0] = ch;
for(i = 1; i < 20; i++) {
prbuf[i] = prbuf[i-1]-9;
}
ch = pub.GoogleCH(pub.c32to8bit(prbuf), 80);
return ch;
}
pub.gXMLHttpRequest;
pub.glastpr;
pub.gch = 0;
/************************************************************\
*
\************************************************************/
pub.setPagerankStatus = function()
{
var temp = pub.gXMLHttpRequest.responseText;
if (temp){
var foo = temp.match(/Rank_.*?:.*?:(\d+)/i);
var pr = (foo) ? foo[1] : "-1";
foo = temp.match(/FVN_.*?:.*?:(?:Top\/)?([^\s]+)/i);
var cat = (foo) ? foo[1] : "n/a";
var iscat = (cat=="n/a") ? "" : "cat";
//alert (temp);
pub.glastpr = pr;
}
else{
//alert("temp was null!!!");
pub.glastpr = 0;
}
var prBut = document.getElementById('changeMe');
var prButSB = document.getElementById('SEOTB-PR-status');
prBut.setAttribute("tooltiptext", "PageRank: "+pub.glastpr+"/10");
prBut.setAttribute("image", "chrome://seostatus/skin/pr/Pagerank"+pub.glastpr+".jpg");
prButSB.setAttribute("tooltiptext", "PageRank: "+pub.glastpr+"/10");
prButSB.setAttribute("src", "chrome://seostatus/skin/pr/pr"+pub.glastpr+".png");
}
/************************************************************\
*
\************************************************************/
/*function URLencode(sStr) {
return escape(sStr).replace(/\+/g, '%2B').replace(/[ ]/g,'+').replace(/\//g,'%2F').replace(/~/g,'%7E');
}
*/
pub.URLencode = function(sStr)
{
return encodeURIComponent(sStr).replace(/\+/g,"%2B").replace(/\//g,"%2F");
}
/************************************************************\
*
\************************************************************/
pub.initPagerankStatus = function(sentURL)
{
var prBut = document.getElementById('changeMe');
var prButSB = document.getElementById('SEOTB-PR-status');
prBut.setAttribute("tooltiptext", "PageRank: Computing...");
prBut.setAttribute("image", "chrome://seostatus/skin/pr/aprThink.gif");
prButSB.setAttribute("tooltiptext", "PageRank: Computing...");
prButSB.setAttribute("src", "chrome://seostatus/skin/pr/prN.gif");
var url = new String(sentURL);
url = url.replace(/\?.*$/g,'?');
var reqgr = "info:" + url;
var reqgre = "info:" + pub.URLencode(url);
pub.gch = pub.GoogleCH(pub.strord(reqgr));
pub.gch = "6" + pub.GoogleNewCh(pub.gch);
var querystring = "http://toolbarqueries.google.com/search?client=navclient-auto&ch=" + pub.gch + "&ie=UTF-8&oe=UTF-8&features=Rank:FVN&q=" + reqgre;
pub.gXMLHttpRequest = new XMLHttpRequest();
pub.gXMLHttpRequest.onload = pub.setPagerankStatus;
pub.gXMLHttpRequest.open("GET", querystring);
//alert("i am here just did GET");
pub.gXMLHttpRequest.setRequestHeader("User-Agent","Mozilla/4.0 (compatible; GoogleToolbar 2.0.114-big; Windows XP 5.1)");
pub.gXMLHttpRequest.send(null);
//alert("i am here just did send");
}
return pub;
}();